package com.huanletao.tree;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * </p>
 * package: com.huanletao.tree
 * description:
 * className: demo
 * author:  踏雪无痕
 * copyright: Copyright (c) 2022/9/24 11:09
 * since: 1.0.0
 */
public class demo {
    public static void main(String[] args) {

        List<Muens> list = new ArrayList<>();
        Muens muens = new Muens();
        muens.setName("顶级菜单");
        muens.setId(1L);
        muens.setParentId(0L);
        Muens muens1 = new Muens();
        muens1.setName("一级菜单");
        muens1.setId(2L);
        muens1.setParentId(1L);
        Muens muens2 = new Muens();
        muens2.setName("二级菜单");
        muens2.setId(3L);
        muens2.setParentId(2L);
        Muens muens4 = new Muens();
        muens4.setName("四级菜单");
        muens4.setId(5L);
        muens4.setParentId(1L);

        list.add(muens);
        list.add(muens1);
        list.add(muens2);
        list.add(muens4);

        TreeNodeBuilder<Muens> treeNodeBuilder = new TreeNodeBuilder<Muens>() {
            @Override
            public Serializable getParentId(Muens paramEntity) {
                return paramEntity.getParentId();
            }
            @Override
            public void setTreeChildrenNode(List<Muens> childList, Muens paramEntity) {
                paramEntity.setTreeChildrenNode(childList);
            }
            @Override
            public Serializable getId(Muens paramEntity) {
                return paramEntity.getId();
            }
        };
        List<Muens> muens6 = TreeUtils.buildTree(list, treeNodeBuilder);

       TreeUtils.print(list);

    }
}
